Evil gear
Christmas is almost here
Goth and Gore Gifts
Shop right now or else!
Sharp Stuff
Switchblades Icepicks and german knives
Viking gear
Gear Gifts and Apparel

here are some of the best and useful php scripts and snippets to help in your projects. Php displayed below. Use the search for specific script lookups. Click the category links to view scripts in Javascript and cgi. To add your own script click the link and add your useful script example.

shopping cart data from get variables writes data to csv and emails
you and the customer order copies

shopping cart csv 
shoppingcarttocsv date added Jan 2013

#!/usr/bin/perl

require 5.001;

#################################
#######################################
#                            
                                          #
#  User defined variables
:                                             #
#      $header       
 - string value containing the complete           #
#                
       path of the HTML page header                   #
#      $foote
r        - string value containing the complete           #
#        
               path of the HTML page footer                   #
#    
  $mailprogram   - string value containing the complete path to   #
#
                       the sendmail binary on the system.             
#
#      $youremail     - string value containing the email address t
o   #
#                       send catalog orders in EMAIL or BOTH mo
des     #
#                       **Don't forget to put a \ before th
e @ in your #
#                       email address. ie. spam\@nopdes
ign.com***      #
#      $returnpage    - URL to send user when check
out is complete     #
#      $csvfilename   - string value containing
 the complete           #
#                       path of the user da
tabase.                     #
#      $csvquote      - string value co
ntaining what to use for quotes #
#                       in the csv 
file (typically "" or \")           #
#      $mode          - string 
value containing 'EMAIL', 'FILE' or     #
#                       'BO
TH' to determine if the script should send  #
#                      
 an email to you with the new order, write the  #
#                  
     order to a CSV file, or do both.               #
###############
#########################################################
$header    
    = "header.html";
$footer        = "footer.html";
$mailprogram   
= "/usr/lib/sendmail -t";
$returnpage    = "/";
$youremail     = "ca
rt\@no.com";
$csvfilename   = "orders.csv";
$csvquote      = "\"\"";

$mode          = "FILE";


#These are required fields.  I recomme
nd enforcing these by javascript, 
#but let's just make sure here as 
well.
@required = (
'b_first',
'b_last',
'b_addr',
'b_city',
'b_
state',
'b_zip',
'b_phone',
'b_email'
);

######################
########################################
#FUNCTION:   urlDecode      
                                 #
#RETURNS:    The decoded string.  
                           #
#PARAMETERS: An encoded string.         
                     #
#PURPOSE:    Decodes a URL encoded string.    
               #
####################################################
##########
sub urlDecode {
    my ($string) = @_;
    $string =~ tr
/+/ /;
    $string =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack ("C", hex($1))/e
g;
    $string =~ s/['"]/\'/g;
    return ($string);
}

#########
#####################################################
#FUNCTION:   pr
ocessCGI                                      #
#RETURNS:            
                                        #
#PARAMETERS:               
                                  #
#PURPOSE:    Retrieves form data 
submitted via the 'GET'     #
#            method and decodes it.  Yo
u may then access     #
#            the passed in variables via call
s to $[name]    #
#            where [name] is the name of the form e
lement.   #
#########################################################
#####
sub processCGI {
    local ($cgiData, $key, $value, $pair, @pa
irs);

   if ($ENV{'REQUEST_METHOD'} eq 'GET') { $cgiData = $ENV{'QU
ERY_STRING'}; }
   else { $cgiData = <STDIN>; }
   @pairs = split (/
&/, $cgiData);
   foreach $pair (@pairs) {
      ($key, $value) = sp
lit (/\=/, $pair);
      $key   = &urlDecode($key);
      $value = &urlDecode($value);

      if(defined ${$key}){
         ${$key} .= ", ".$value;
      
}else{
         ${$key} = $value;
      }
   }
}

##############
################################################
#FUNCTION:   doFormE
rror                                     #
#RETURNS:                 
                                   #
#PARAMETERS: A error message str
ing.                         #
#PURPOSE:    Generates an HTML page in
dicating a form        #
#            submission error occurred.     
                 #
##################################################
############
sub doFormError {
    my ($errString) = @_;

    open
 (HEAD, $header);
    @LINES = <HEAD>;
    close HEAD;

    print 
"Content-type: text/html\n\n";

    print @LINES;

    print "<FON
T SIZE=+2>The form you submitted was not complete.<BR><BR></FONT>";
 
   print "$errString<BR><BR>\n";
    print "<INPUT TYPE=BUTTON ONCLIC
K='history.back()' VALUE='  Return to the checkout page '><HR>";

  
  open (FOOT, $footer);
    @LINES = <FOOT>;
    close FOOT;
    pr
int @LINES;

    exit;
}

#######################################
#######################
#FUNCTION:   doError                         
                #
#RETURNS:                                          
          #
#PARAMETERS: A error message string.                     
    #
#PURPOSE:    Generates an HTML page indicating an error      #

#            occurred.                                       #
#####
#########################################################
sub doError
 {
    my ($errString) = @_;
    print "Content-type: text/html\n\n"
;

    open (HEAD, $header);
    @LINES = <HEAD>;
    close HEAD;


    print @LINES;

    print "$errString<BR><BR>\n";

    open 
(FOOT, $footer);
    @LINES = <FOOT>;
    close FOOT;
    print @LI
NES;

    exit;
}

##############################################
################
#FUNCTION:   invalidE                               
         #
#RETURNS:    1 if invalid, 0 if valid.                    
   #
#PARAMETERS: An email address variable.                      #

#PURPOSE:    Checks to see if a submitted email address is   #
#     
       of the valid form 'x@y'.                        #
############
##################################################
sub invalidE {
  
my ($szEmail) = @_;
  my ($user, $host);

  $szEmail =~ tr/A-Z/a-z/
;
  if ($szEmail =~ /\s/) { return 1; }
  ($user, $host) = split (/\
@/, $szEmail);
  if ($host =~ /compuserve/i) { ; }
  else {
    if 
(! $user =~ /\D/) { return 1; }
    if (! $host =~ /\D/) { return 1; 
}
    if (substr ($user,0,1) !~ /[a-z]/) { return 1; }
  }
  if ($s
zEmail =~ /\w+\@[\w|\.]/) { return 0; }
  else { return 1; }
}



sub populateDateVar {
   @months = ();
   push(@months,"January");

   push(@months,"February");
   push(@months,"March");
   push(@mont
hs,"April");
   push(@months,"May");
   push(@months,"June");
   pu
sh(@months,"July");
   push(@months,"August");
   push(@months,"Sept
ember");
   push(@months,"October");
   push(@months,"November");
 
  push(@months,"December");
   @days = ();
   push(@days,"Sunday");

   push(@days,"Monday");
   push(@days,"Tuesday");
   push(@days,"W
ednesday");
   push(@days,"Thursday");
   push(@days,"Friday");
   
push(@days,"Saturday");
   ($sec,$min,$hour,$day,$month,$year,$day2) 
=
   (localtime(time))[0,1,2,3,4,5,6];
   if ($sec < 10) { $sec = "0
$sec"; }
   if ($min < 10) { $min = "0$min"; }
   if ($hour < 10) { 
$hour = "0$hour"; }
   if ($day < 10) { $day = "0$day"; }
   $year +
= "1900";

   #$todaysdate = "$months[$month] $day, $year $hour:$min
:$sec";
}


######################################################
########
############################################################
##
###  MAIN                                                  ###
##
############################################################
########
######################################################

# process th
e form input.
&processCGI;
&populateDateVar;

foreach $check(@requ
ired) {
   unless ($check) {
      doFormError("It appears that you 
forgot to fill in the <strong>$check</strong> field.");
      exit;

   }
}

# checks for valid email address
if( &invalidE($b_email) ){
   doFormError('You submitted an invalid email address.');

}


if( $mode eq "BOTH" || $mode eq "EMAIL") {
   # Send email o
rder to you...
   open (MAIL,"|$mailprogram");
   print MAIL "To: $y
ouremail\n";
   print MAIL "From: $b_email\n";
   print MAIL "Subjec
t: New Online Order\n";
   print MAIL "\n\n";
   print MAIL "A new o
rder has been received.  A summary of this order appears below.\n";
 
  print MAIL "\n";
   print MAIL "Order Date: $months[$month] $day, $
year $hour:$min:$sec \n"; 
   print MAIL " \n";
   print MAIL "Bill 
To: \n";
   print MAIL "-------- \n";
   print MAIL "   $b_first $b_
last \n";
   print MAIL "   $b_addr \n";
   print MAIL "   $b_addr2 
\n";
   print MAIL "   $b_city, $b_state  $b_zip \n";
   print MAIL 
"   $b_phone \n";
   print MAIL "   $b_fax \n";
   print MAIL "   $b
_email \n";
   print MAIL " \n";
   print MAIL " \n";
   print MAIL
 "Ship To: \n";
   print MAIL "-------- \n";
   print MAIL "   $s_fi
rst $s_last \n";
   print MAIL "   $s_addr \n";
   print MAIL "   $s
_addr2 \n";
   print MAIL "   $s_city, $s_state  $s_zip \n";
   prin
t MAIL "   $s_phone \n";
   print MAIL " \n";
   print MAIL " \n";

   print MAIL "Qty  Price(\$)   Product ID  - Product Name\n";
   pri
nt MAIL "=============================================================
======== \n";
   print MAIL "$QUANTITY_1    \$$PRICE_1    $ID_1 - $NA
ME_1   $ADDTLINFO_1  \n";
   if( $NAME_2 ) {print MAIL "$QUANTITY_2  
  \$$PRICE_2    $ID_2 - $NAME_2   $ADDTLINFO_2  \n";}
   if( $NAME_3 
) {print MAIL "$QUANTITY_3    \$$PRICE_3    $ID_3 - $NAME_3   $ADDTLIN
FO_3  \n";}
   if( $NAME_4 ) {print MAIL "$QUANTITY_4    \$$PRICE_4  
  $ID_4 - $NAME_4   $ADDTLINFO_4  \n";}
   if( $NAME_5 ) {print MAIL 
"$QUANTITY_5    \$$PRICE_5    $ID_5 - $NAME_5   $ADDTLINFO_5  \n";}
 
  if( $NAME_6 ) {print MAIL "$QUANTITY_6    \$$PRICE_6    $ID_6 - $NAM
E_6   $ADDTLINFO_6  \n";}
   if( $NAME_7 ) {print MAIL "$QUANTITY_7  
  \$$PRICE_7    $ID_7 - $NAME_7   $ADDTLINFO_7  \n";}
   if( $NAME_8 
) {print MAIL "$QUANTITY_8    \$$PRICE_8    $ID_8 - $NAME_8   $ADDTLIN
FO_8  \n";}
   if( $NAME_9 ) {print MAIL "$QUANTITY_9    \$$PRICE_9  
  $ID_9 - $NAME_9   $ADDTLINFO_9  \n";}
   if( $NAME_10 ){print MAIL 
"$QUANTITY_10    \$$PRICE_10    $ID_10 - $NAME_10   $ADDTLINFO_10 \n";
}
   if( $NAME_11 ){print MAIL "$QUANTITY_11    \$$PRICE_11    $ID_11
 - $NAME_11   $ADDTLINFO_11 \n";}
   if( $NAME_12 ){print MAIL "$QUAN
TITY_12    \$$PRICE_12    $ID_12 - $NAME_12   $ADDTLINFO_12 \n";}
   
if( $NAME_13 ){print MAIL "$QUANTITY_13    \$$PRICE_13    $ID_13 - $NA
ME_13   $ADDTLINFO_13 \n";}
   print MAIL "==========================
=========================================== \n";
   print MAIL "SUBTO
TAL: $SUBTOTAL \n";
   print MAIL "TOTAL: $TOTAL \n";
   print MAIL 
"\n";
   print MAIL "FREIGHT: $SHIPPING \n";
   print MAIL "\n\n";

   print MAIL "Comments: \n";
   print MAIL "--------- \n";
   print
 MAIL "$comment \n";
   print MAIL " \n";
   close MAIL;
}


if(
 $mode eq "BOTH" || $mode eq "FILE") {
   
   $csvcomments = $commen
t;
   #$csvcomments =~ s/\"/$csvquote/ig;

   open (CSVF,">>$csvfil
ename");
   print CSVF "\"";
   print CSVF "$months[$month] $day, $y
ear $hour:$min:$sec";
   print CSVF "\",\"";
   print CSVF "$b_first
";
   print CSVF "\",\"";
   print CSVF "$b_last";
   print CSVF "\
",\"";
   print CSVF "$b_addr";
   print CSVF "\",\"";
   print CSV
F "$b_addr2";
   print CSVF "\",\"";
   print CSVF "$b_city";
   pr
int CSVF "\",\"";
   print CSVF "$b_state";
   print CSVF "\",\"";

   print CSVF "$b_zip";
   print CSVF "\",\"";
   print CSVF "$b_pho
ne";
   print CSVF "\",\"";
   print CSVF "$b_fax";
   print CSVF "
\",\"";
   print CSVF "$b_email";
   print CSVF "\",\"";
   print C
SVF "$s_first";
   print CSVF "\",\"";
   print CSVF "$s_last";
   
print CSVF "\",\"";
   print CSVF "$s_addr";
   print CSVF "\",\"";

   print CSVF "$s_addr2";
   print CSVF "\",\"";
   print CSVF "$s_
city";
   print CSVF "\",\"";
   print CSVF "$s_state";
   print CS
VF "\",\"";
   print CSVF "$s_zip";
   print CSVF "\",\"";
   print
 CSVF "$s_phone";
   print CSVF "\",\"";   
   print CSVF "$QUANTITY
_1";
   print CSVF "\",\"";
   print CSVF "\$$PRICE_1";
   print CS
VF "\",\"";
   print CSVF "$ID_1";
   print CSVF "\",\"";
   print 
CSVF "$NAME_1";
   print CSVF "\",\"";
   print CSVF "$ADDTLINFO_1";

   print CSVF "\",\"";
   print CSVF "$QUANTITY_2";
   print CSVF 
"\",\"";
   print CSVF "\$$PRICE_2";
   print CSVF "\",\"";
   prin
t CSVF "$ID_2";
   print CSVF "\",\"";
   print CSVF "$NAME_2";
   
print CSVF "\",\"";
   print CSVF "$ADDTLINFO_2";
   print CSVF "\",
\"";
   print CSVF "$QUANTITY_3";
   print CSVF "\",\"";
   print C
SVF "\$$PRICE_3";
   print CSVF "\",\"";
   print CSVF "$ID_3";
   
print CSVF "\",\"";
   print CSVF "$NAME_3";
   print CSVF "\",\"";

   print CSVF "$ADDTLINFO_3";
   print CSVF "\",\"";
   print CSVF 
"$QUANTITY_4";
   print CSVF "\",\"";
   print CSVF "\$$PRICE_4";
 
  print CSVF "\",\"";
   print CSVF "$ID_4";
   print CSVF "\",\"";

   print CSVF "$NAME_4";
   print CSVF "\",\"";
   print CSVF "$ADD
TLINFO_4";
   print CSVF "\",\"";
   print CSVF "$QUANTITY_5";
   p
rint CSVF "\",\"";
   print CSVF "\$$PRICE_5";
   print CSVF "\",\""
;
   print CSVF "$ID_5";
   print CSVF "\",\"";
   print CSVF "$NAM
E_5";
   print CSVF "\",\"";
   print CSVF "$ADDTLINFO_5";
   print
 CSVF "\",\"";
   print CSVF "$QUANTITY_6";
   print CSVF "\",\"";

   print CSVF "\$$PRICE_6";
   print CSVF "\",\"";
   print CSVF "$I
D_6";
   print CSVF "\",\"";
   print CSVF "$NAME_6";
   print CSVF
 "\",\"";
   print CSVF "$ADDTLINFO_6";
   print CSVF "\",\"";
   p
rint CSVF "$QUANTITY_7";
   print CSVF "\",\"";
   print CSVF "\$$PR
ICE_7";
   print CSVF "\",\"";
   print CSVF "$ID_7";
   print CSVF
 "\",\"";
   print CSVF "$NAME_7";
   print CSVF "\",\"";
   print 
CSVF "$ADDTLINFO_7";
   print CSVF "\",\"";
   print CSVF "$QUANTITY
_8";
   print CSVF "\",\"";
   print CSVF "\$$PRICE_8";
   print CS
VF "\",\"";
   print CSVF "$ID_8";
   print CSVF "\",\"";
   print 
CSVF "$NAME_8";
   print CSVF "\",\"";
   print CSVF "$ADDTLINFO_8";

   print CSVF "\",\"";
   print CSVF "$QUANTITY_9";
   print CSVF 
"\",\"";
   print CSVF "\$$PRICE_9";
   print CSVF "\",\"";
   prin
t CSVF "$ID_9";
   print CSVF "\",\"";
   print CSVF "$NAME_9";
   
print CSVF "\",\"";
   print CSVF "$ADDTLINFO_9";
   print CSVF "\",
\"";
   print CSVF "$QUANTITY_10";
   print CSVF "\",\"";
   print 
CSVF "\$$PRICE_10";
   print CSVF "\",\"";
   print CSVF "$ID_10";

   print CSVF "\",\"";
   print CSVF "$NAME_10";
   print CSVF "\",\
"";
   print CSVF "$ADDTLINFO_10";
   print CSVF "\",\"";
   print 
CSVF "$QUANTITY_11";
   print CSVF "\",\"";
   print CSVF "\$$PRICE_
11";
   print CSVF "\",\"";
   print CSVF "$ID_11";
   print CSVF "
\",\"";
   print CSVF "$NAME_11";
   print CSVF "\",\"";
   print C
SVF "$ADDTLINFO_11";
   print CSVF "\",\"";
   print CSVF "$QUANTITY
_12";
   print CSVF "\",\"";
   print CSVF "\$$PRICE_12";
   print 
CSVF "\",\"";
   print CSVF "$ID_12";
   print CSVF "\",\"";
   pri
nt CSVF "$NAME_12";
   print CSVF "\",\"";
   print CSVF "$ADDTLINFO
_12";
   print CSVF "\",\"";
   print CSVF "$QUANTITY_13";
   print
 CSVF "\",\"";
   print CSVF "\$$PRICE_13";
   print CSVF "\",\"";

   print CSVF "$ID_13";
   print CSVF "\",\"";
   print CSVF "$NAME_
13";
   print CSVF "\",\"";
   print CSVF "$ADDTLINFO_13";
   print
 CSVF "\",\"";
   print CSVF "$SUBTOTAL";
   print CSVF "\",\"";
  
 print CSVF "$TOTAL";
   print CSVF "\",\"";
   print CSVF "$SHIPPIN
G";
   print CSVF "\",\"";
   print CSVF "$comment";
   print CSVF 
"\"\n";
   close CSVF;
}



# Send email conformation to the cus
tomer.....
open (MAIL,"|$mailprogram");
print MAIL "To: $b_email\n";

print MAIL "From: $youremail\n";
print MAIL "Subject: Order Confirm
ation\n";
print MAIL "\n\n";
print MAIL "A new order has been receiv
ed.  A summary of this order appears below.\n";
print MAIL "\n";
pri
nt MAIL "Order Date: $months[$month] $day, $year $hour:$min:$sec \n"; 

print MAIL " \n";
print MAIL "Bill To: \n";
print MAIL "-------- \
n";
print MAIL "   $b_first $b_last \n";
print MAIL "   $b_addr \n";

print MAIL "   $b_addr2 \n";
print MAIL "   $b_city, $b_state  $b_z
ip \n";
print MAIL "   $b_phone \n";
print MAIL "   $b_fax \n";
pri
nt MAIL "   $b_email \n";
print MAIL " \n";
print MAIL " \n";
print
 MAIL "Ship To: \n";
print MAIL "-------- \n";

if ( $s_addr eq "" 
) {
   print MAIL "   Use Billing Address\n";
} else {
   print MAI
L "   $s_first $s_last \n";
   print MAIL "   $s_addr \n";
   print 
MAIL "   $s_addr2 \n";
   print MAIL "   $s_city, $s_state  $s_zip \n
";
   print MAIL "   $s_phone \n";
}

print MAIL " \n";
print MAI
L " \n";
print MAIL "Qty  Price(\$)   Product ID  - Product Name\n";

print MAIL "=========================================================
============ \n";
print MAIL "$QUANTITY_1    \$$PRICE_1    $ID_1 - $N
AME_1   $ADDTLINFO_1  \n";
if( $NAME_2 ) {print MAIL "$QUANTITY_2    
\$$PRICE_2    $ID_2 - $NAME_2   $ADDTLINFO_2  \n";}
if( $NAME_3 ) {pr
int MAIL "$QUANTITY_3    \$$PRICE_3    $ID_3 - $NAME_3   $ADDTLINFO_3 
 \n";}
if( $NAME_4 ) {print MAIL "$QUANTITY_4    \$$PRICE_4    $ID_4 
- $NAME_4   $ADDTLINFO_4  \n";}
if( $NAME_5 ) {print MAIL "$QUANTITY_
5    \$$PRICE_5    $ID_5 - $NAME_5   $ADDTLINFO_5  \n";}
if( $NAME_6 
) {print MAIL "$QUANTITY_6    \$$PRICE_6    $ID_6 - $NAME_6   $ADDTLIN
FO_6  \n";}
if( $NAME_7 ) {print MAIL "$QUANTITY_7    \$$PRICE_7    $
ID_7 - $NAME_7   $ADDTLINFO_7  \n";}
if( $NAME_8 ) {print MAIL "$QUAN
TITY_8    \$$PRICE_8    $ID_8 - $NAME_8   $ADDTLINFO_8  \n";}
if( $NA
ME_9 ) {print MAIL "$QUANTITY_9    \$$PRICE_9    $ID_9 - $NAME_9   $AD
DTLINFO_9  \n";}
if( $NAME_10 ){print MAIL "$QUANTITY_10    \$$PRICE_
10    $ID_10 - $NAME_10   $ADDTLINFO_10 \n";}
if( $NAME_11 ){print MA
IL "$QUANTITY_11    \$$PRICE_11    $ID_11 - $NAME_11   $ADDTLINFO_11 \
n";}
if( $NAME_12 ){print MAIL "$QUANTITY_12    \$$PRICE_12    $ID_12
 - $NAME_12   $ADDTLINFO_12 \n";}
if( $NAME_13 ){print MAIL "$QUANTIT
Y_13    \$$PRICE_13    $ID_13 - $NAME_13   $ADDTLINFO_13 \n";}
print 
MAIL "================================================================
===== \n";
print MAIL "SUBTOTAL: $SUBTOTAL \n";
print MAIL "TOTAL: $
TOTAL \n";
print MAIL "\n";
print MAIL "FREIGHT: $SHIPPING \n";
pri
nt MAIL "\n\n";
print MAIL "Comments: \n";
print MAIL "--------- \n"
;
print MAIL "$comment \n";
print MAIL " \n";
close MAIL;


prin
t "Content-type: text/html\n\n";

open (HEAD, $header);
@LINES = <H
EAD>;
close HEAD;
print @LINES;

print "<h2>Thank you</h2>";
prin
t "Thank you for your order from our online store.  You will receive a
 confirmation email of your order ";
print "momentarily.  Please cont
act us at $youremail if you have any questions or concerns.";
print "
<P>";
print "<A HREF=\"$returnpage\" target=_top>Return Home</A>";
p
rint "<P>";

open (FOOT, $footer);
@LINES = <FOOT>;
close FOOT;


print @LINES;

exit;





Add your comment.













No comments yet

Search ScriptsnTips


Php JavaScripts CGI/Perl